/**
 * 
 */
package ar.com.fiuba.team2.model;

import java.util.ArrayList;


/**
 * @author sergio
 *
 */
public class Data {

	private Long idAmbito;
	private Long idChat;
	private ArrayList<MiembroChat> miembros;
	
	
	public Data(){
		
		miembros = new ArrayList<MiembroChat>();
		
	}
	
	/* (non-Javadoc)
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((idChat == null) ? 0 : idChat.hashCode());
		return result;
	}

	/* (non-Javadoc)
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Data other = (Data) obj;
		if (idChat == null) {
			if (other.idChat != null)
				return false;
		} else if (!idChat.equals(other.idChat))
			return false;
		return true;
	}

	public Data(Long idAmbito,Long idChat){
		
		this.setIdAmbito(idAmbito);
		this.setIdChat(idChat);
	}
	
	/**
	 * @return the idAmbito
	 */
	public Long getIdAmbito() {
		return idAmbito;
	}
	/**
	 * @param idAmbito the idAmbito to set
	 */
	public void setIdAmbito(Long idAmbito) {
		this.idAmbito = idAmbito;
	}
	/**
	 * @return the idChat
	 */
	public Long getIdChat() {
		return idChat;
	}
	/**
	 * @param idChat the idChat to set
	 */
	public void setIdChat(Long idChat) {
		this.idChat = idChat;
	}

	public ArrayList<MensajeChat> getLastMensajes(long lastCallTimestamp) {
		
		ArrayList<MensajeChat> newMsg = new ArrayList<MensajeChat>();

		for(MiembroChat miembro : miembros){
			for(MensajeChat mensaje : miembro.getMensajes()){
				if(mensaje.getFechaMensaje()>=lastCallTimestamp){
					newMsg.add(mensaje);
				}
			}
		}
		return newMsg;
	}

	public ArrayList<MiembroChat> getMiembros() {
		return miembros;
	}
	
	public void addMiembro(MiembroChat miembro) {
		miembros.add(miembro);
		
	}
	
}
